<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GDBusProxy</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="index.html" title="GIO Reference Manual">
<link rel="up" href="gdbus-convenience.html" title="Highlevel D-Bus Support">
<link rel="prev" href="GDBusInterfaceSkeleton.html" title="GDBusInterfaceSkeleton">
<link rel="next" href="GDBusObject.html" title="GDBusObject">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="GDBusInterfaceSkeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gdbus-convenience.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GIO Reference Manual</th>
<td><a accesskey="n" href="GDBusObject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#GDBusProxy.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#GDBusProxy.description" class="shortcut">Description</a>
                   | 
                  <a href="#GDBusProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#GDBusProxy.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
                   | 
                  <a href="#GDBusProxy.properties" class="shortcut">Properties</a>
                   | 
                  <a href="#GDBusProxy.signals" class="shortcut">Signals</a>
</td></tr>
</table>
<div class="refentry">
<a name="GDBusProxy"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GDBusProxy.top_of_page"></a>GDBusProxy</span></h2>
<p>GDBusProxy — Client-side D-Bus interface proxy</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="GDBusProxy.synopsis"></a><h2>Synopsis</h2>
<a name="GDBusProxyFlags"></a><pre class="synopsis">
#include &lt;gio/gio.h&gt;

enum                <a class="link" href="GDBusProxy.html#GDBusProxyFlags-enum" title="enum GDBusProxyFlags">GDBusProxyFlags</a>;
                    <a class="link" href="GDBusProxy.html#GDBusProxy-struct" title="GDBusProxy">GDBusProxy</a>;
struct              <a class="link" href="GDBusProxy.html#GDBusProxyClass" title="struct GDBusProxyClass">GDBusProxyClass</a>;
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-new" title="g_dbus_proxy_new ()">g_dbus_proxy_new</a>                    (<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-finish" title="g_dbus_proxy_new_finish ()">g_dbus_proxy_new_finish</a>             (<em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-sync" title="g_dbus_proxy_new_sync ()">g_dbus_proxy_new_sync</a>               (<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-for-bus" title="g_dbus_proxy_new_for_bus ()">g_dbus_proxy_new_for_bus</a>            (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-for-bus-finish" title="g_dbus_proxy_new_for_bus_finish ()">g_dbus_proxy_new_for_bus_finish</a>     (<em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-for-bus-sync" title="g_dbus_proxy_new_for_bus_sync ()">g_dbus_proxy_new_for_bus_sync</a>       (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="returnvalue">GDBusProxyFlags</span></a>     <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-flags" title="g_dbus_proxy_get_flags ()">g_dbus_proxy_get_flags</a>              (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="returnvalue">GDBusConnection</span></a> *   <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-connection" title="g_dbus_proxy_get_connection ()">g_dbus_proxy_get_connection</a>         (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-name" title="g_dbus_proxy_get_name ()">g_dbus_proxy_get_name</a>               (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-name-owner" title="g_dbus_proxy_get_name_owner ()">g_dbus_proxy_get_name_owner</a>         (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-object-path" title="g_dbus_proxy_get_object_path ()">g_dbus_proxy_get_object_path</a>        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-interface-name" title="g_dbus_proxy_get_interface_name ()">g_dbus_proxy_get_interface_name</a>     (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-default-timeout" title="g_dbus_proxy_get_default_timeout ()">g_dbus_proxy_get_default_timeout</a>    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-set-default-timeout" title="g_dbus_proxy_set_default_timeout ()">g_dbus_proxy_set_default_timeout</a>    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>);
<a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-cached-property" title="g_dbus_proxy_get_cached_property ()">g_dbus_proxy_get_cached_property</a>    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-set-cached-property" title="g_dbus_proxy_set_cached_property ()">g_dbus_proxy_set_cached_property</a>    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);
<a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-cached-property-names" title="g_dbus_proxy_get_cached_property_names ()">g_dbus_proxy_get_cached_property_names</a>
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-set-interface-info" title="g_dbus_proxy_set_interface_info ()">g_dbus_proxy_set_interface_info</a>     (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>);
<a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="returnvalue">GDBusInterfaceInfo</span></a> * <a class="link" href="GDBusProxy.html#g-dbus-proxy-get-interface-info" title="g_dbus_proxy_get_interface_info ()">g_dbus_proxy_get_interface_info</a>    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()">g_dbus_proxy_call</a>                   (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-finish" title="g_dbus_proxy_call_finish ()">g_dbus_proxy_call_finish</a>            (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()">g_dbus_proxy_call_sync</a>              (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-with-unix-fd-list" title="g_dbus_proxy_call_with_unix_fd_list ()">g_dbus_proxy_call_with_unix_fd_list</a> (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> *fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-with-unix-fd-list-finish" title="g_dbus_proxy_call_with_unix_fd_list_finish ()">g_dbus_proxy_call_with_unix_fd_list_finish</a>
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> **out_fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-with-unix-fd-list-sync" title="g_dbus_proxy_call_with_unix_fd_list_sync ()">g_dbus_proxy_call_with_unix_fd_list_sync</a>
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> *fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> **out_fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="GDBusProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  GFlags
   +----GDBusProxyFlags
</pre>
<pre class="synopsis">
  <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----GDBusProxy
</pre>
</div>
<div class="refsect1">
<a name="GDBusProxy.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GDBusProxy implements
 <a class="link" href="GDBusInterface.html" title="GDBusInterface">GDBusInterface</a>,  <a class="link" href="GInitable.html" title="GInitable">GInitable</a> and  <a class="link" href="GAsyncInitable.html" title="GAsyncInitable">GAsyncInitable</a>.</p>
</div>
<div class="refsect1">
<a name="GDBusProxy.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-bus-type" title='The "g-bus-type" property'>g-bus-type</a>"               <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a>              : Write / Construct Only
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-connection" title='The "g-connection" property'>g-connection</a>"             <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>*      : Read / Write / Construct Only
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-default-timeout" title='The "g-default-timeout" property'>g-default-timeout</a>"        <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-flags" title='The "g-flags" property'>g-flags</a>"                  <a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a>       : Read / Write / Construct Only
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'>g-interface-info</a>"         <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a>*   : Read / Write
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-name" title='The "g-interface-name" property'>g-interface-name</a>"         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-name" title='The "g-name" property'>g-name</a>"                   <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-name-owner" title='The "g-name-owner" property'>g-name-owner</a>"             <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read
  "<a class="link" href="GDBusProxy.html#GDBusProxy--g-object-path" title='The "g-object-path" property'>g-object-path</a>"            <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
</pre>
</div>
<div class="refsect1">
<a name="GDBusProxy.signals"></a><h2>Signals</h2>
<pre class="synopsis">
  "<a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'>g-properties-changed</a>"                           : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
  "<a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'>g-signal</a>"                                       : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
</pre>
</div>
<div class="refsect1">
<a name="GDBusProxy.description"></a><h2>Description</h2>
<p>
<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> is a base class used for proxies to access a D-Bus
interface on a remote object. A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> can be constructed for
both well-known and unique names.
</p>
<p>
By default, <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> will cache all properties (and listen to
changes) of the remote object, and proxy all signals that gets
emitted. This behaviour can be changed by passing suitable
<a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> when the proxy is created. If the proxy is for a
well-known name, the property cache is flushed when the name owner
vanishes and reloaded when a name owner appears.
</p>
<p>
If a <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> is used for a well-known name, the owner of the
name is tracked and can be read from
<a class="link" href="GDBusProxy.html#GDBusProxy--g-name-owner" title='The "g-name-owner" property'><span class="type">"g-name-owner"</span></a>. Connect to the <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> signal to
get notified of changes. Additionally, only signals and property
changes emitted from the current name owner are considered and
calls are always sent to the current name owner. This avoids a
number of race conditions when the name is lost by one owner and
claimed by another. However, if no name owner currently exists,
then calls will be sent to the well-known name which may result in
the message bus launching an owner (unless
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-AUTO-START:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START</code></a> is set).
</p>
<p>
The generic <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a> and
<a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'><span class="type">"g-signal"</span></a> signals are not very convenient to work
with. Therefore, the recommended way of working with proxies is to
subclass <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>, and have more natural properties and signals
in your derived class. See <a class="xref" href="ch32s05.html#gdbus-example-gdbus-codegen" title="Using gdbus-codegen">the section called “Using gdbus-codegen”</a>
for how this can easily be done using the
<span class="command"><strong><a href="gdbus-codegen.html">gdbus-codegen</a></strong></span>
tool.
</p>
<p>
A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> instance can be used from multiple threads but note
that all signals (e.g. <a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'><span class="type">"g-signal"</span></a>, <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a>
and <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a>) are emitted in the
<a href="./../glib/glib/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a>
of the thread where the instance was constructed.
</p>
<p>
</p>
<div class="example">
<a name="gdbus-wellknown-proxy"></a><p class="title"><b>Example 10. GDBusProxy for a well-known-name</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gio/gio.h&gt;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_name         </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_object_path  </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_interface    </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> opt_system_bus </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> opt_no_auto_start </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> opt_no_properties </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="usertype">GOptionEntry</span><span class="normal"> opt_entries</span><span class="symbol">[]</span><span class="normal"> </span><span class="symbol">=</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"name"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'n'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-STRING:CAPS">G_OPTION_ARG_STRING</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_name</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Name of the remote object to watch"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"object-path"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'o'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-STRING:CAPS">G_OPTION_ARG_STRING</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_object_path</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Object path of the remote object"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"interface"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'i'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-STRING:CAPS">G_OPTION_ARG_STRING</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_interface</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"D-Bus interface of remote object"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"system-bus"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'s'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-NONE:CAPS">G_OPTION_ARG_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_system_bus</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Use the system-bus instead of the session-bus"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"no-auto-start"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'a'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-NONE:CAPS">G_OPTION_ARG_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_no_auto_start</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Don't instruct the bus to launch an owner for the name"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> </span><span class="string">"no-properties"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">'p'</span><span class="symbol">,</span><span class="normal"> </span><span class="number">0</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Commandline-option-parser.html#G-OPTION-ARG-NONE:CAPS">G_OPTION_ARG_NONE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">opt_no_properties</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Do not load properties"</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="cbracket">}</span><span class="symbol">,</span>
<span class="normal">  </span><span class="cbracket">{</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="cbracket">}</span>
<span class="cbracket">}</span><span class="symbol">;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">print_properties</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusProxy</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">proxy</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">property_names</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">guint</span><span class="normal"> n</span><span class="symbol">;</span>

<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"    properties:</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>

<span class="normal">  property_names </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-get-cached-property-names">g_dbus_proxy_get_cached_property_names</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>
<span class="normal">  </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">n </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> property_names </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="symbol">&amp;&amp;</span><span class="normal"> property_names</span><span class="symbol">[</span><span class="normal">n</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span><span class="normal"> n</span><span class="symbol">++)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key </span><span class="symbol">=</span><span class="normal"> property_names</span><span class="symbol">[</span><span class="normal">n</span><span class="symbol">];</span>
<span class="normal">      </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
<span class="normal">      </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value_str</span><span class="symbol">;</span>
<span class="normal">      value </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-get-cached-property">g_dbus_proxy_get_cached_property</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">);</span>
<span class="normal">      value_str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-print">g_variant_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"      %s -&gt; %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span><span class="normal"> value_str</span><span class="symbol">);</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">);</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value_str</span><span class="symbol">);</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev">g_strfreev</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">property_names</span><span class="symbol">);</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_properties_changed</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusProxy</span><span class="normal">          </span><span class="symbol">*</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                       </span><span class="usertype">GVariant</span><span class="normal">            </span><span class="symbol">*</span><span class="normal">changed_properties</span><span class="symbol">,</span>
<span class="normal">                       </span><span class="keyword">const</span><span class="normal"> <a href="./../glib/glib/glib-Basic-Types.html#gchar">gchar</a></span><span class="symbol">*</span><span class="normal"> </span><span class="keyword">const</span><span class="normal">  </span><span class="symbol">*</span><span class="normal">invalidated_properties</span><span class="symbol">,</span>
<span class="normal">                       </span><span class="usertype">gpointer</span><span class="normal">             user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="comment">/* Note that we are guaranteed that changed_properties and</span>
<span class="comment">   * invalidated_properties are never NULL</span>
<span class="comment">   */</span>

<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-n-children">g_variant_n_children</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">changed_properties</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">&gt;</span><span class="normal"> </span><span class="number">0</span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="usertype">GVariantIter</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">iter</span><span class="symbol">;</span>
<span class="normal">      </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key</span><span class="symbol">;</span>
<span class="normal">      </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>

<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">" *** Properties Changed:</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-get">g_variant_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">changed_properties</span><span class="symbol">,</span>
<span class="normal">                     </span><span class="string">"a{sv}"</span><span class="symbol">,</span>
<span class="normal">                     </span><span class="symbol">&amp;</span><span class="normal">iter</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-iter-loop">g_variant_iter_loop</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{&amp;sv}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">key</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
<span class="normal">        </span><span class="cbracket">{</span>
<span class="normal">          </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value_str</span><span class="symbol">;</span>
<span class="normal">          value_str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-print">g_variant_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
<span class="normal">          </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"      %s -&gt; %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span><span class="normal"> value_str</span><span class="symbol">);</span>
<span class="normal">          </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value_str</span><span class="symbol">);</span>
<span class="normal">        </span><span class="cbracket">}</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-iter-free">g_variant_iter_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">iter</span><span class="symbol">);</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strv-length">g_strv_length</a></span><span class="normal"> </span><span class="symbol">((</span><span class="normal"><a href="./../gobject/gobject/gobject-Boxed-Types.html#GStrv">GStrv</a></span><span class="symbol">)</span><span class="normal"> invalidated_properties</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">&gt;</span><span class="normal"> </span><span class="number">0</span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="usertype">guint</span><span class="normal"> n</span><span class="symbol">;</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">" *** Properties Invalidated:</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">n </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> invalidated_properties</span><span class="symbol">[</span><span class="normal">n</span><span class="symbol">]</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span><span class="normal"> n</span><span class="symbol">++)</span>
<span class="normal">        </span><span class="cbracket">{</span>
<span class="normal">          </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key </span><span class="symbol">=</span><span class="normal"> invalidated_properties</span><span class="symbol">[</span><span class="normal">n</span><span class="symbol">];</span>
<span class="normal">          </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"      %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">);</span>
<span class="normal">        </span><span class="cbracket">}</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_signal</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusProxy</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">           </span><span class="usertype">gchar</span><span class="normal">      </span><span class="symbol">*</span><span class="normal">sender_name</span><span class="symbol">,</span>
<span class="normal">           </span><span class="usertype">gchar</span><span class="normal">      </span><span class="symbol">*</span><span class="normal">signal_name</span><span class="symbol">,</span>
<span class="normal">           </span><span class="usertype">GVariant</span><span class="normal">   </span><span class="symbol">*</span><span class="normal">parameters</span><span class="symbol">,</span>
<span class="normal">           </span><span class="usertype">gpointer</span><span class="normal">    user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">parameters_str</span><span class="symbol">;</span>

<span class="normal">  parameters_str </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-print">g_variant_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parameters</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">" *** Received Signal: %s: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span>
<span class="normal">           signal_name</span><span class="symbol">,</span>
<span class="normal">           parameters_str</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parameters_str</span><span class="symbol">);</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">print_proxy</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GDBusProxy</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">proxy</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">name_owner</span><span class="symbol">;</span>

<span class="normal">  name_owner </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-get-name-owner">g_dbus_proxy_get_name_owner</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">name_owner </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"+++ Proxy object points to remote object owned by %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    bus:          %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    name:         %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    object path:  %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    interface:    %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span>
<span class="normal">               name_owner</span><span class="symbol">,</span>
<span class="normal">               opt_system_bus </span><span class="symbol">?</span><span class="normal"> </span><span class="string">"System Bus"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Session Bus"</span><span class="symbol">,</span>
<span class="normal">               opt_name</span><span class="symbol">,</span>
<span class="normal">               opt_object_path</span><span class="symbol">,</span>
<span class="normal">               opt_interface</span><span class="symbol">);</span>
<span class="normal">      </span><span class="function">print_properties</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="normal">  </span><span class="keyword">else</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"--- Proxy object is inert - there is no name owner for the name</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    bus:          %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    name:         %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    object path:  %s</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">               </span><span class="string">"    interface:    %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span>
<span class="normal">               opt_system_bus </span><span class="symbol">?</span><span class="normal"> </span><span class="string">"System Bus"</span><span class="normal"> </span><span class="symbol">:</span><span class="normal"> </span><span class="string">"Session Bus"</span><span class="symbol">,</span>
<span class="normal">               opt_name</span><span class="symbol">,</span>
<span class="normal">               opt_object_path</span><span class="symbol">,</span>
<span class="normal">               opt_interface</span><span class="symbol">);</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">name_owner</span><span class="symbol">);</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_name_owner_notify</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal">    </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">,</span>
<span class="normal">                      </span><span class="usertype">GParamSpec</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">pspec</span><span class="symbol">,</span>
<span class="normal">                      </span><span class="usertype">gpointer</span><span class="normal">    user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">GDBusProxy</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">proxy </span><span class="symbol">=</span><span class="normal"> </span><span class="function">G_DBUS_PROXY</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">print_proxy</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>
<span class="cbracket">}</span>

<span class="type">int</span>
<span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">argv</span><span class="symbol">[])</span>
<span class="cbracket">{</span>
<span class="normal">  </span><span class="usertype">GOptionContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">opt_context</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">GDBusProxyFlags</span><span class="normal"> flags</span><span class="symbol">;</span>
<span class="normal">  </span><span class="usertype">GDBusProxy</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">proxy</span><span class="symbol">;</span>

<span class="normal">  </span><span class="function"><a href="./../gobject/gobject/gobject-Type-Information.html#g-type-init">g_type_init</a></span><span class="normal"> </span><span class="symbol">();</span>

<span class="normal">  loop </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="normal">  proxy </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="normal">  opt_context </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Commandline-option-parser.html#g-option-context-new">g_option_context_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"g_bus_watch_proxy() example"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Commandline-option-parser.html#g-option-context-set-summary">g_option_context_set_summary</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_context</span><span class="symbol">,</span>
<span class="normal">                                </span><span class="string">"Example: to watch the object of gdbus-example-server, use:</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">                                </span><span class="string">"</span><span class="specialchar">\n</span><span class="string">"</span>
<span class="normal">                                </span><span class="string">"  ./gdbus-example-watch-proxy -n org.gtk.GDBus.TestServer  </span><span class="specialchar">\\\n</span><span class="string">"</span>
<span class="normal">                                </span><span class="string">"                              -o /org/gtk/GDBus/TestObject </span><span class="specialchar">\\\n</span><span class="string">"</span>
<span class="normal">                                </span><span class="string">"                              -i org.gtk.GDBus.TestInterface"</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Commandline-option-parser.html#g-option-context-add-main-entries">g_option_context_add_main_entries</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_context</span><span class="symbol">,</span><span class="normal"> opt_entries</span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal">  error </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="./../glib/glib/glib-Commandline-option-parser.html#g-option-context-parse">g_option_context_parse</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_context</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">argc</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">argv</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">))</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error parsing options: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">goto</span><span class="normal"> out</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_name </span><span class="symbol">==</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="symbol">||</span><span class="normal"> opt_object_path </span><span class="symbol">==</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a> </span><span class="symbol">||</span><span class="normal"> opt_interface </span><span class="symbol">==</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Incorrect usage, try --help.</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">goto</span><span class="normal"> out</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">  flags </span><span class="symbol">=</span><span class="normal"> <a href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-NONE:CAPS">G_DBUS_PROXY_FLAGS_NONE</a></span><span class="symbol">;</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_no_properties</span><span class="symbol">)</span>
<span class="normal">    flags </span><span class="symbol">|=</span><span class="normal"> <a href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-LOAD-PROPERTIES:CAPS">G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES</a></span><span class="symbol">;</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_no_auto_start</span><span class="symbol">)</span>
<span class="normal">    flags </span><span class="symbol">|=</span><span class="normal"> <a href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-AUTO-START:CAPS">G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START</a></span><span class="symbol">;</span>

<span class="normal">  loop </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">);</span>

<span class="normal">  error </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="normal">  proxy </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-new-for-bus-sync">g_dbus_proxy_new_for_bus_sync</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_system_bus </span><span class="symbol">?</span><span class="normal"> <a href="GDBusConnection.html#G-BUS-TYPE-SYSTEM:CAPS">G_BUS_TYPE_SYSTEM</a> </span><span class="symbol">:</span><span class="normal"> <a href="GDBusConnection.html#G-BUS-TYPE-SESSION:CAPS">G_BUS_TYPE_SESSION</a></span><span class="symbol">,</span>
<span class="normal">                                         flags</span><span class="symbol">,</span>
<span class="normal">                                         <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="comment">/* GDBusInterfaceInfo */</span>
<span class="normal">                                         opt_name</span><span class="symbol">,</span>
<span class="normal">                                         opt_object_path</span><span class="symbol">,</span>
<span class="normal">                                         opt_interface</span><span class="symbol">,</span>
<span class="normal">                                         <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="comment">/* GCancellable */</span>
<span class="normal">                                         </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy </span><span class="symbol">==</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="cbracket">{</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Warnings-and-Assertions.html#g-printerr">g_printerr</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error creating proxy: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">      </span><span class="function"><a href="./../glib/glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">      </span><span class="keyword">goto</span><span class="normal"> out</span><span class="symbol">;</span>
<span class="normal">    </span><span class="cbracket">}</span>

<span class="normal">  </span><span class="function"><a href="./../gobject/gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="string">"g-properties-changed"</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="function"><a href="./../gobject/gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_properties_changed</span><span class="symbol">),</span>
<span class="normal">                    <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../gobject/gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="string">"g-signal"</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="function"><a href="./../gobject/gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_signal</span><span class="symbol">),</span>
<span class="normal">                    <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../gobject/gobject/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="string">"notify::g-name-owner"</span><span class="symbol">,</span>
<span class="normal">                    </span><span class="function"><a href="./../gobject/gobject/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">on_name_owner_notify</span><span class="symbol">),</span>
<span class="normal">                    <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="normal">  </span><span class="function">print_proxy</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>

<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>

<span class="label"> out:</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="function"><a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">);</span>
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop </span><span class="symbol">!=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span>
<span class="normal">    </span><span class="function"><a href="./../glib/glib/glib-The-Main-Event-Loop.html#g-main-loop-unref">g_main_loop_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Commandline-option-parser.html#g-option-context-free">g_option_context_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_context</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_name</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_object_path</span><span class="symbol">);</span>
<span class="normal">  </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">opt_interface</span><span class="symbol">);</span>

<span class="normal">  </span><span class="keyword">return</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<p><br class="example-break">
</p>
</div>
<div class="refsect1">
<a name="GDBusProxy.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GDBusProxyFlags-enum"></a><h3>enum GDBusProxyFlags</h3>
<pre class="programlisting">typedef enum {
  G_DBUS_PROXY_FLAGS_NONE = 0,
  G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1&lt;&lt;0),
  G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1&lt;&lt;1),
  G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1&lt;&lt;2),
  G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = (1&lt;&lt;3)
} GDBusProxyFlags;
</pre>
<p>
Flags used when constructing an instance of a <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> derived class.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><a name="G-DBUS-PROXY-FLAGS-NONE:CAPS"></a><span class="term"><code class="literal">G_DBUS_PROXY_FLAGS_NONE</code></span></p></td>
<td>No flags set.
</td>
</tr>
<tr>
<td><p><a name="G-DBUS-PROXY-FLAGS-DO-NOT-LOAD-PROPERTIES:CAPS"></a><span class="term"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES</code></span></p></td>
<td>Don't load properties.
</td>
</tr>
<tr>
<td><p><a name="G-DBUS-PROXY-FLAGS-DO-NOT-CONNECT-SIGNALS:CAPS"></a><span class="term"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS</code></span></p></td>
<td>Don't connect to signals on the remote object.
</td>
</tr>
<tr>
<td><p><a name="G-DBUS-PROXY-FLAGS-DO-NOT-AUTO-START:CAPS"></a><span class="term"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START</code></span></p></td>
<td>If not set and the proxy if for a well-known name,
then request the bus to launch an owner for the name if no-one owns the name. This flag can
only be used in proxies for well-known names.
</td>
</tr>
<tr>
<td><p><a name="G-DBUS-PROXY-FLAGS-GET-INVALIDATED-PROPERTIES:CAPS"></a><span class="term"><code class="literal">G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES</code></span></p></td>
<td>If set, the property value for any <span class="emphasis"><em>invalidated property</em></span> will be (asynchronously) retrieved upon receiving the <a class="ulink" href="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties" target="_top">PropertiesChanged</a> D-Bus signal and the property will not cause emission of the <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a> signal. When the value is received the <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a> signal is emitted for the property along with the retrieved value. Since 2.32.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy-struct"></a><h3>GDBusProxy</h3>
<pre class="programlisting">typedef struct _GDBusProxy GDBusProxy;</pre>
<p>
The <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> structure contains only private data and
should only be accessed using the provided API.
</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxyClass"></a><h3>struct GDBusProxyClass</h3>
<pre class="programlisting">struct GDBusProxyClass {
  /* Signals */
  void (*g_properties_changed) (GDBusProxy          *proxy,
                                GVariant            *changed_properties,
                                const gchar* const  *invalidated_properties);
  void (*g_signal)             (GDBusProxy          *proxy,
                                const gchar         *sender_name,
                                const gchar         *signal_name,
                                GVariant            *parameters);
};
</pre>
<p>
Class structure for <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GDBusProxyClass.g-properties-changed"></a>g_properties_changed</code></em> ()</span></p></td>
<td>Signal class handler for the <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a> signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GDBusProxyClass.g-signal"></a>g_signal</code></em> ()</span></p></td>
<td>Signal class handler for the <a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'><span class="type">"g-signal"</span></a> signal.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new"></a><h3>g_dbus_proxy_new ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_new                    (<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Creates a proxy for accessing <em class="parameter"><code>interface_name</code></em> on the remote object
at <em class="parameter"><code>object_path</code></em> owned by <em class="parameter"><code>name</code></em> at <em class="parameter"><code>connection</code></em> and asynchronously
loads D-Bus properties unless the
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-LOAD-PROPERTIES:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES</code></a> flag is used. Connect to
the <a class="link" href="GDBusProxy.html#GDBusProxy-g-properties-changed" title='The "g-properties-changed" signal'><span class="type">"g-properties-changed"</span></a> signal to get notified about
property changes.
</p>
<p>
If the <a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-CONNECT-SIGNALS:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS</code></a> flag is not set, also sets up
match rules for signals. Connect to the <a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'><span class="type">"g-signal"</span></a> signal
to handle signals from the remote object.
</p>
<p>
If <em class="parameter"><code>name</code></em> is a well-known name and the
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-AUTO-START:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START</code></a> flag isn't set and no name
owner currently exists, the message bus will be requested to launch
a name owner for the name.
</p>
<p>
This is a failable asynchronous constructor - when the proxy is
ready, <em class="parameter"><code>callback</code></em> will be invoked and you can use
<a class="link" href="GDBusProxy.html#g-dbus-proxy-new-finish" title="g_dbus_proxy_new_finish ()"><code class="function">g_dbus_proxy_new_finish()</code></a> to get the result.
</p>
<p>
See <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-sync" title="g_dbus_proxy_new_sync ()"><code class="function">g_dbus_proxy_new_sync()</code></a> and for a synchronous version of this constructor.
</p>
<p>
See <a class="xref" href="GDBusProxy.html#gdbus-wellknown-proxy" title="Example 10. GDBusProxy for a well-known-name">Example 10, “GDBusProxy for a well-known-name”</a> for an example of how <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> can be used.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags used when constructing the proxy.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> specifying the minimal interface that <em class="parameter"><code>proxy</code></em> conforms to or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A bus name (well-known or unique) or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
<td>An object path.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
<td>A D-Bus interface name.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
<td>Callback function to invoke when the proxy is ready.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new-finish"></a><h3>g_dbus_proxy_new_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        g_dbus_proxy_new_finish             (<em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Finishes creating a <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> obtained from the <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> function passed to <a class="link" href="GDBusProxy.html#g-dbus-proxy-new" title="g_dbus_proxy_new ()"><code class="function">g_dbus_proxy_new()</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Free with <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new-sync"></a><h3>g_dbus_proxy_new_sync ()</h3>
<pre class="programlisting"><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        g_dbus_proxy_new_sync               (<em class="parameter"><code><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> *connection</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Creates a proxy for accessing <em class="parameter"><code>interface_name</code></em> on the remote object
at <em class="parameter"><code>object_path</code></em> owned by <em class="parameter"><code>name</code></em> at <em class="parameter"><code>connection</code></em> and synchronously
loads D-Bus properties unless the
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-LOAD-PROPERTIES:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES</code></a> flag is used.
</p>
<p>
If the <a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-CONNECT-SIGNALS:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS</code></a> flag is not set, also sets up
match rules for signals. Connect to the <a class="link" href="GDBusProxy.html#GDBusProxy-g-signal" title='The "g-signal" signal'><span class="type">"g-signal"</span></a> signal
to handle signals from the remote object.
</p>
<p>
If <em class="parameter"><code>name</code></em> is a well-known name and the
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-DO-NOT-AUTO-START:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START</code></a> flag isn't set and no name
owner currently exists, the message bus will be requested to launch
a name owner for the name.
</p>
<p>
This is a synchronous failable constructor. See <a class="link" href="GDBusProxy.html#g-dbus-proxy-new" title="g_dbus_proxy_new ()"><code class="function">g_dbus_proxy_new()</code></a>
and <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-finish" title="g_dbus_proxy_new_finish ()"><code class="function">g_dbus_proxy_new_finish()</code></a> for the asynchronous version.
</p>
<p>
See <a class="xref" href="GDBusProxy.html#gdbus-wellknown-proxy" title="Example 10. GDBusProxy for a well-known-name">Example 10, “GDBusProxy for a well-known-name”</a> for an example of how <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> can be used.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags used when constructing the proxy.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> specifying the minimal interface that <em class="parameter"><code>proxy</code></em> conforms to or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A bus name (well-known or unique) or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>connection</code></em> is not a message bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
<td>An object path.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
<td>A D-Bus interface name.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if error is set. Free with <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new-for-bus"></a><h3>g_dbus_proxy_new_for_bus ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_new_for_bus            (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Like <a class="link" href="GDBusProxy.html#g-dbus-proxy-new" title="g_dbus_proxy_new ()"><code class="function">g_dbus_proxy_new()</code></a> but takes a <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> instead of a <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>.
</p>
<p>
See <a class="xref" href="GDBusProxy.html#gdbus-wellknown-proxy" title="Example 10. GDBusProxy for a well-known-name">Example 10, “GDBusProxy for a well-known-name”</a> for an example of how <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> can be used.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags used when constructing the proxy.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> specifying the minimal interface that <em class="parameter"><code>proxy</code></em> conforms to or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A bus name (well-known or unique).</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
<td>An object path.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
<td>A D-Bus interface name.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
<td>Callback function to invoke when the proxy is ready.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>User data to pass to <em class="parameter"><code>callback</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new-for-bus-finish"></a><h3>g_dbus_proxy_new_for_bus_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        g_dbus_proxy_new_for_bus_finish     (<em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Finishes creating a <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> obtained from the <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> function passed to <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-for-bus" title="g_dbus_proxy_new_for_bus ()"><code class="function">g_dbus_proxy_new_for_bus()</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Free with <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-new-for-bus-sync"></a><h3>g_dbus_proxy_new_for_bus_sync ()</h3>
<pre class="programlisting"><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="returnvalue">GDBusProxy</span></a> *        g_dbus_proxy_new_for_bus_sync       (<em class="parameter"><code><a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> bus_type</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *object_path</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *interface_name</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Like <a class="link" href="GDBusProxy.html#g-dbus-proxy-new-sync" title="g_dbus_proxy_new_sync ()"><code class="function">g_dbus_proxy_new_sync()</code></a> but takes a <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a> instead of a <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>.
</p>
<p>
See <a class="xref" href="GDBusProxy.html#gdbus-wellknown-proxy" title="Example 10. GDBusProxy for a well-known-name">Example 10, “GDBusProxy for a well-known-name”</a> for an example of how <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> can be used.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>bus_type</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags used when constructing the proxy.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>A <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> specifying the minimal interface
that <em class="parameter"><code>proxy</code></em> conforms to or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>A bus name (well-known or unique).</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
<td>An object path.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>interface_name</code></em> :</span></p></td>
<td>A D-Bus interface name.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if error is set. Free with <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-flags"></a><h3>g_dbus_proxy_get_flags ()</h3>
<pre class="programlisting"><a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="returnvalue">GDBusProxyFlags</span></a>     g_dbus_proxy_get_flags              (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the flags that <em class="parameter"><code>proxy</code></em> was constructed with.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Flags from the <a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-connection"></a><h3>g_dbus_proxy_get_connection ()</h3>
<pre class="programlisting"><a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="returnvalue">GDBusConnection</span></a> *   g_dbus_proxy_get_connection         (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the connection <em class="parameter"><code>proxy</code></em> is for.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> owned by <em class="parameter"><code>proxy</code></em>. Do not free. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-name"></a><h3>g_dbus_proxy_get_name ()</h3>
<pre class="programlisting">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       g_dbus_proxy_get_name               (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the name that <em class="parameter"><code>proxy</code></em> was constructed for.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A string owned by <em class="parameter"><code>proxy</code></em>. Do not free.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-name-owner"></a><h3>g_dbus_proxy_get_name_owner ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             g_dbus_proxy_get_name_owner         (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
The unique name that owns the name that <em class="parameter"><code>proxy</code></em> is for or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
no-one currently owns that name. You may connect to the
<a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> signal to track changes to the
<a class="link" href="GDBusProxy.html#GDBusProxy--g-name-owner" title='The "g-name-owner" property'><span class="type">"g-name-owner"</span></a> property.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The name owner or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no name owner exists. Free with <a href="./../glib/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-object-path"></a><h3>g_dbus_proxy_get_object_path ()</h3>
<pre class="programlisting">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       g_dbus_proxy_get_object_path        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the object path <em class="parameter"><code>proxy</code></em> is for.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A string owned by <em class="parameter"><code>proxy</code></em>. Do not free.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-interface-name"></a><h3>g_dbus_proxy_get_interface_name ()</h3>
<pre class="programlisting">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       g_dbus_proxy_get_interface_name     (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the D-Bus interface name <em class="parameter"><code>proxy</code></em> is for.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A string owned by <em class="parameter"><code>proxy</code></em>. Do not free.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-default-timeout"></a><h3>g_dbus_proxy_get_default_timeout ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>                g_dbus_proxy_get_default_timeout    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the timeout to use if -1 (specifying default timeout) is
passed as <em class="parameter"><code>timeout_msec</code></em> in the <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a> and
<a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()"><code class="function">g_dbus_proxy_call_sync()</code></a> functions.
</p>
<p>
See the <a class="link" href="GDBusProxy.html#GDBusProxy--g-default-timeout" title='The "g-default-timeout" property'><span class="type">"g-default-timeout"</span></a> property for more details.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Timeout to use for <em class="parameter"><code>proxy</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-set-default-timeout"></a><h3>g_dbus_proxy_set_default_timeout ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_set_default_timeout    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>);</pre>
<p>
Sets the timeout to use if -1 (specifying default timeout) is
passed as <em class="parameter"><code>timeout_msec</code></em> in the <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a> and
<a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()"><code class="function">g_dbus_proxy_call_sync()</code></a> functions.
</p>
<p>
See the <a class="link" href="GDBusProxy.html#GDBusProxy--g-default-timeout" title='The "g-default-timeout" property'><span class="type">"g-default-timeout"</span></a> property for more details.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
<td>Timeout in milliseconds.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-cached-property"></a><h3>g_dbus_proxy_get_cached_property ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_dbus_proxy_get_cached_property    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>);</pre>
<p>
Looks up the value for a property from the cache. This call does no
blocking IO.
</p>
<p>
If <em class="parameter"><code>proxy</code></em> has an expected interface (see
<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a>) and <em class="parameter"><code>property_name</code></em> is referenced by
it, then <em class="parameter"><code>value</code></em> is checked against the type of the property.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
<td>Property name.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A reference to the <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> instance that holds the value
for <em class="parameter"><code>property_name</code></em> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the value is not in the cache. The
returned reference must be freed with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-set-cached-property"></a><h3>g_dbus_proxy_set_cached_property ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_set_cached_property    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *property_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
<p>
If <em class="parameter"><code>value</code></em> is not <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, sets the cached value for the property with
name <em class="parameter"><code>property_name</code></em> to the value in <em class="parameter"><code>value</code></em>.
</p>
<p>
If <em class="parameter"><code>value</code></em> is <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, then the cached value is removed from the
property cache.
</p>
<p>
If <em class="parameter"><code>proxy</code></em> has an expected interface (see
<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a>) and <em class="parameter"><code>property_name</code></em> is referenced by
it, then <em class="parameter"><code>value</code></em> is checked against the type of the property.
</p>
<p>
If the <em class="parameter"><code>value</code></em> <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> is floating, it is consumed. This allows
convenient 'inline' use of <a href="./../glib/glib/glib-GVariant.html#g-variant-new"><code class="function">g_variant_new()</code></a>, e.g.
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-set-cached-property">g_dbus_proxy_set_cached_property</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                                  </span><span class="string">"SomeProperty"</span><span class="symbol">,</span>
<span class="normal">                                  </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-new">g_variant_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"(si)"</span><span class="symbol">,</span>
<span class="normal">                                                </span><span class="string">"A String"</span><span class="symbol">,</span>
<span class="normal">                                                </span><span class="number">42</span><span class="symbol">));</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
</p>
<p>
Normally you will not need to use this method since <em class="parameter"><code>proxy</code></em> is
tracking changes using the
<code class="literal">org.freedesktop.DBus.Properties.PropertiesChanged</code>
D-Bus signal. However, for performance reasons an object may decide
to not use this signal for some properties and instead use a
proprietary out-of-band mechanism to transmit changes.
</p>
<p>
As a concrete example, consider an object with a property
<code class="literal">ChatroomParticipants</code> which is an array of
strings. Instead of transmitting the same (long) array every time
the property changes, it is more efficient to only transmit the
delta using e.g. signals <code class="literal">ChatroomParticipantJoined(String
name)</code> and <code class="literal">ChatroomParticipantParted(String
name)</code>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
<td>Property name.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>Value for the property or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to remove it from the cache. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-cached-property-names"></a><h3>g_dbus_proxy_get_cached_property_names ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            g_dbus_proxy_get_cached_property_names
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Gets the names of all cached properties on <em class="parameter"><code>proxy</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of strings or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
<em class="parameter"><code>proxy</code></em> has no cached properties. Free the returned array with
<a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-set-interface-info"></a><h3>g_dbus_proxy_set_interface_info ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_set_interface_info     (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> *info</code></em>);</pre>
<p>
Ensure that interactions with <em class="parameter"><code>proxy</code></em> conform to the given
interface. See the <a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a> property for more
details.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
<td>Minimum interface this proxy conforms to or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to unset. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-get-interface-info"></a><h3>g_dbus_proxy_get_interface_info ()</h3>
<pre class="programlisting"><a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="returnvalue">GDBusInterfaceInfo</span></a> * g_dbus_proxy_get_interface_info    (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>);</pre>
<p>
Returns the <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a>, if any, specifying the interface
that <em class="parameter"><code>proxy</code></em> conforms to. See the <a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a>
property for more details.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not unref the returned
object, it is owned by <em class="parameter"><code>proxy</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call"></a><h3>g_dbus_proxy_call ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_call                   (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Asynchronously invokes the <em class="parameter"><code>method_name</code></em> method on <em class="parameter"><code>proxy</code></em>.
</p>
<p>
If <em class="parameter"><code>method_name</code></em> contains any dots, then <em class="parameter"><code>name</code></em> is split into interface and
method name parts. This allows using <em class="parameter"><code>proxy</code></em> for invoking methods on
other interfaces.
</p>
<p>
If the <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> associated with <em class="parameter"><code>proxy</code></em> is closed then
the operation will fail with <a class="link" href="gio-GIOError.html#G-IO-ERROR-CLOSED:CAPS"><code class="literal">G_IO_ERROR_CLOSED</code></a>. If
<em class="parameter"><code>cancellable</code></em> is canceled, the operation will fail with
<a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>. If <em class="parameter"><code>parameters</code></em> contains a value not
compatible with the D-Bus protocol, the operation fails with
<a class="link" href="gio-GIOError.html#G-IO-ERROR-INVALID-ARGUMENT:CAPS"><code class="literal">G_IO_ERROR_INVALID_ARGUMENT</code></a>.
</p>
<p>
If the <em class="parameter"><code>parameters</code></em> <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> is floating, it is consumed. This allows
convenient 'inline' use of <a href="./../glib/glib/glib-GVariant.html#g-variant-new"><code class="function">g_variant_new()</code></a>, e.g.:
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-call">g_dbus_proxy_call</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                   </span><span class="string">"TwoStrings"</span><span class="symbol">,</span>
<span class="normal">                   </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-new">g_variant_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"(ss)"</span><span class="symbol">,</span>
<span class="normal">                                  </span><span class="string">"Thing One"</span><span class="symbol">,</span>
<span class="normal">                                  </span><span class="string">"Thing Two"</span><span class="symbol">),</span>
<span class="normal">                   <a href="GDBusConnection.html#G-DBUS-CALL-FLAGS-NONE:CAPS">G_DBUS_CALL_FLAGS_NONE</a></span><span class="symbol">,</span>
<span class="normal">                   </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">,</span>
<span class="normal">                   <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
<span class="normal">                   </span><span class="symbol">(</span><span class="normal"><a href="GAsyncResult.html#GAsyncReadyCallback">GAsyncReadyCallback</a></span><span class="symbol">)</span><span class="normal"> two_strings_done</span><span class="symbol">,</span>
<span class="normal">                   </span><span class="symbol">&amp;</span><span class="normal">data</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
</p>
<p>
If <em class="parameter"><code>proxy</code></em> has an expected interface (see
<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a>) and <em class="parameter"><code>method_name</code></em> is referenced by it,
then the return value is checked against the return type.
</p>
<p>
This is an asynchronous method. When the operation is finished,
<em class="parameter"><code>callback</code></em> will be invoked in the
<a href="./../glib/glib/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default">thread-default main loop</a>
of the thread you are calling this method from.
You can then call <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-finish" title="g_dbus_proxy_call_finish ()"><code class="function">g_dbus_proxy_call_finish()</code></a> to get the result of
the operation. See <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()"><code class="function">g_dbus_proxy_call_sync()</code></a> for the synchronous
version of this method.
</p>
<p>
If <em class="parameter"><code>callback</code></em> is <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the D-Bus method call message will be sent with
the <a class="link" href="GDBusMessage.html#G-DBUS-MESSAGE-FLAGS-NO-REPLY-EXPECTED:CAPS"><code class="literal">G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED</code></a> flag set.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>Name of method to invoke.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with parameters for the signal or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not passing parameters. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags from the <a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> enumeration.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
<td>The timeout in milliseconds (with <a href="./../glib/glib/glib-Basic-Types.html#G-MAXINT:CAPS"><code class="literal">G_MAXINT</code></a> meaning
"infinite") or -1 to use the proxy default timeout.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if you don't
care about the result of the method invocation. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>The data to pass to <em class="parameter"><code>callback</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call-finish"></a><h3>g_dbus_proxy_call_finish ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_dbus_proxy_call_finish            (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Finishes an operation started with <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> obtained from the <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Otherwise a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with
return values. Free with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call-sync"></a><h3>g_dbus_proxy_call_sync ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_dbus_proxy_call_sync              (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Synchronously invokes the <em class="parameter"><code>method_name</code></em> method on <em class="parameter"><code>proxy</code></em>.
</p>
<p>
If <em class="parameter"><code>method_name</code></em> contains any dots, then <em class="parameter"><code>name</code></em> is split into interface and
method name parts. This allows using <em class="parameter"><code>proxy</code></em> for invoking methods on
other interfaces.
</p>
<p>
If the <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> associated with <em class="parameter"><code>proxy</code></em> is disconnected then
the operation will fail with <a class="link" href="gio-GIOError.html#G-IO-ERROR-CLOSED:CAPS"><code class="literal">G_IO_ERROR_CLOSED</code></a>. If
<em class="parameter"><code>cancellable</code></em> is canceled, the operation will fail with
<a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>. If <em class="parameter"><code>parameters</code></em> contains a value not
compatible with the D-Bus protocol, the operation fails with
<a class="link" href="gio-GIOError.html#G-IO-ERROR-INVALID-ARGUMENT:CAPS"><code class="literal">G_IO_ERROR_INVALID_ARGUMENT</code></a>.
</p>
<p>
If the <em class="parameter"><code>parameters</code></em> <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> is floating, it is consumed. This allows
convenient 'inline' use of <a href="./../glib/glib/glib-GVariant.html#g-variant-new"><code class="function">g_variant_new()</code></a>, e.g.:
</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="GDBusProxy.html#g-dbus-proxy-call-sync">g_dbus_proxy_call_sync</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">proxy</span><span class="symbol">,</span>
<span class="normal">                        </span><span class="string">"TwoStrings"</span><span class="symbol">,</span>
<span class="normal">                        </span><span class="function"><a href="./../glib/glib/glib-GVariant.html#g-variant-new">g_variant_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"(ss)"</span><span class="symbol">,</span>
<span class="normal">                                       </span><span class="string">"Thing One"</span><span class="symbol">,</span>
<span class="normal">                                       </span><span class="string">"Thing Two"</span><span class="symbol">),</span>
<span class="normal">                        <a href="GDBusConnection.html#G-DBUS-CALL-FLAGS-NONE:CAPS">G_DBUS_CALL_FLAGS_NONE</a></span><span class="symbol">,</span>
<span class="normal">                        </span><span class="symbol">-</span><span class="number">1</span><span class="symbol">,</span>
<span class="normal">                        <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
<span class="normal">                        </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p>
</p>
<p>
The calling thread is blocked until a reply is received. See
<a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a> for the asynchronous version of this
method.
</p>
<p>
If <em class="parameter"><code>proxy</code></em> has an expected interface (see
<a class="link" href="GDBusProxy.html#GDBusProxy--g-interface-info" title='The "g-interface-info" property'><span class="type">"g-interface-info"</span></a>) and <em class="parameter"><code>method_name</code></em> is referenced by it,
then the return value is checked against the return type.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>Name of method to invoke.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with parameters for the signal
or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not passing parameters. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags from the <a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> enumeration.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
<td>The timeout in milliseconds (with <a href="./../glib/glib/glib-Basic-Types.html#G-MAXINT:CAPS"><code class="literal">G_MAXINT</code></a> meaning
"infinite") or -1 to use the proxy default timeout.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Otherwise a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with
return values. Free with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call-with-unix-fd-list"></a><h3>g_dbus_proxy_call_with_unix_fd_list ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                g_dbus_proxy_call_with_unix_fd_list (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> *fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Like <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a> but also takes a <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> object.
</p>
<p>
This method is only available on UNIX.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>Name of method to invoke.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with parameters for the signal or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not passing parameters. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags from the <a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> enumeration.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
<td>The timeout in milliseconds (with <a href="./../glib/glib/glib-Basic-Types.html#G-MAXINT:CAPS"><code class="literal">G_MAXINT</code></a> meaning
"infinite") or -1 to use the proxy default timeout.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fd_list</code></em> :</span></p></td>
<td>A <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if you don't
care about the result of the method invocation. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>The data to pass to <em class="parameter"><code>callback</code></em>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.30</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call-with-unix-fd-list-finish"></a><h3>g_dbus_proxy_call_with_unix_fd_list_finish ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_dbus_proxy_call_with_unix_fd_list_finish
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> **out_fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Finishes an operation started with <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-with-unix-fd-list" title="g_dbus_proxy_call_with_unix_fd_list ()"><code class="function">g_dbus_proxy_call_with_unix_fd_list()</code></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>out_fd_list</code></em> :</span></p></td>
<td>Return location for a <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
<td>A <a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> obtained from the <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> passed to <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-with-unix-fd-list" title="g_dbus_proxy_call_with_unix_fd_list ()"><code class="function">g_dbus_proxy_call_with_unix_fd_list()</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Otherwise a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with
return values. Free with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.30</p>
</div>
<hr>
<div class="refsect2">
<a name="g-dbus-proxy-call-with-unix-fd-list-sync"></a><h3>g_dbus_proxy_call_with_unix_fd_list_sync ()</h3>
<pre class="programlisting"><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *          g_dbus_proxy_call_with_unix_fd_list_sync
                                                        (<em class="parameter"><code><a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy</code></em>,
                                                         <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method_name</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *parameters</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> flags</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> timeout_msec</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> *fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> **out_fd_list</code></em>,
                                                         <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                                         <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Like <a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()"><code class="function">g_dbus_proxy_call_sync()</code></a> but also takes and returns <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> objects.
</p>
<p>
This method is only available on UNIX.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>A <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>method_name</code></em> :</span></p></td>
<td>Name of method to invoke.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with parameters for the signal
or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not passing parameters. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
<td>Flags from the <a class="link" href="GDBusConnection.html#GDBusCallFlags" title="enum GDBusCallFlags"><span class="type">GDBusCallFlags</span></a> enumeration.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
<td>The timeout in milliseconds (with <a href="./../glib/glib/glib-Basic-Types.html#G-MAXINT:CAPS"><code class="literal">G_MAXINT</code></a> meaning
"infinite") or -1 to use the proxy default timeout.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>fd_list</code></em> :</span></p></td>
<td>A <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>out_fd_list</code></em> :</span></p></td>
<td>Return location for a <a class="link" href="GUnixFDList.html" title="GUnixFDList"><span class="type">GUnixFDList</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
<td>A <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>Return location for error or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error</code></em> is set. Otherwise a <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with
return values. Free with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a>.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.30</p>
</div>
</div>
<div class="refsect1">
<a name="GDBusProxy.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GDBusProxy--g-bus-type"></a><h3>The <code class="literal">"g-bus-type"</code> property</h3>
<pre class="programlisting">  "g-bus-type"               <a class="link" href="GDBusConnection.html#GBusType" title="enum GBusType"><span class="type">GBusType</span></a>              : Write / Construct Only</pre>
<p>
If this property is not <a class="link" href="GDBusConnection.html#G-BUS-TYPE-NONE:CAPS"><code class="literal">G_BUS_TYPE_NONE</code></a>, then
<a class="link" href="GDBusProxy.html#GDBusProxy--g-connection" title='The "g-connection" property'><span class="type">"g-connection"</span></a> must be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and will be set to the
<a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> obtained by calling <a class="link" href="GDBusConnection.html#g-bus-get" title="g_bus_get ()"><code class="function">g_bus_get()</code></a> with the value
of this property.
</p>
<p>Default value: G_BUS_TYPE_NONE</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-connection"></a><h3>The <code class="literal">"g-connection"</code> property</h3>
<pre class="programlisting">  "g-connection"             <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a>*      : Read / Write / Construct Only</pre>
<p>
The <a class="link" href="GDBusConnection.html" title="GDBusConnection"><span class="type">GDBusConnection</span></a> the proxy is for.
</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-default-timeout"></a><h3>The <code class="literal">"g-default-timeout"</code> property</h3>
<pre class="programlisting">  "g-default-timeout"        <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a>                  : Read / Write / Construct</pre>
<p>
The timeout to use if -1 (specifying default timeout) is passed
as <em class="parameter"><code>timeout_msec</code></em> in the <a class="link" href="GDBusProxy.html#g-dbus-proxy-call" title="g_dbus_proxy_call ()"><code class="function">g_dbus_proxy_call()</code></a> and
<a class="link" href="GDBusProxy.html#g-dbus-proxy-call-sync" title="g_dbus_proxy_call_sync ()"><code class="function">g_dbus_proxy_call_sync()</code></a> functions.
</p>
<p>
This allows applications to set a proxy-wide timeout for all
remote method invocations on the proxy. If this property is -1,
the default timeout (typically 25 seconds) is used. If set to
<a href="./../glib/glib/glib-Basic-Types.html#G-MAXINT:CAPS"><code class="literal">G_MAXINT</code></a>, then no timeout is used.
</p>
<p>Allowed values: &gt;= G_MAXULONG</p>
<p>Default value: -1</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-flags"></a><h3>The <code class="literal">"g-flags"</code> property</h3>
<pre class="programlisting">  "g-flags"                  <a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a>       : Read / Write / Construct Only</pre>
<p>
Flags from the <a class="link" href="GDBusProxy.html#GDBusProxyFlags"><span class="type">GDBusProxyFlags</span></a> enumeration.
</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-interface-info"></a><h3>The <code class="literal">"g-interface-info"</code> property</h3>
<pre class="programlisting">  "g-interface-info"         <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a>*   : Read / Write</pre>
<p>
Ensure that interactions with this proxy conform to the given
interface. This is mainly to ensure that malformed data received
from the other peer is ignored. The given <a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a> is
said to be the <span class="emphasis"><em>expected interface</em></span>.
</p>
<p>
The checks performed are:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>
    When completing a method call, if the type signature of
    the reply message isn't what's expected, the reply is
    discarded and the <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> is set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-INVALID-ARGUMENT:CAPS"><code class="literal">G_IO_ERROR_INVALID_ARGUMENT</code></a>.
  </p></li>
<li class="listitem"><p>
    Received signals that have a type signature mismatch are dropped and
    a warning is logged via <a href="./../glib/glib/glib-Message-Logging.html#g-warning"><code class="function">g_warning()</code></a>.
  </p></li>
<li class="listitem"><p>
    Properties received via the initial <code class="literal"><code class="function">GetAll()</code></code> call
    or via the <code class="literal">::PropertiesChanged</code> signal (on the
    <a class="ulink" href="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties" target="_top">org.freedesktop.DBus.Properties</a> interface) or
    set using <a class="link" href="GDBusProxy.html#g-dbus-proxy-set-cached-property" title="g_dbus_proxy_set_cached_property ()"><code class="function">g_dbus_proxy_set_cached_property()</code></a> with a type signature
    mismatch are ignored and a warning is logged via <a href="./../glib/glib/glib-Message-Logging.html#g-warning"><code class="function">g_warning()</code></a>.
  </p></li>
</ul></div>
<p>
Note that these checks are never done on methods, signals and
properties that are not referenced in the given
<a class="link" href="gio-D-Bus-Introspection-Data.html#GDBusInterfaceInfo"><span class="type">GDBusInterfaceInfo</span></a>, since extending a D-Bus interface on the
service-side is not considered an ABI break.
</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-interface-name"></a><h3>The <code class="literal">"g-interface-name"</code> property</h3>
<pre class="programlisting">  "g-interface-name"         <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
<p>
The D-Bus interface name the proxy is for.
</p>
<p>Default value: NULL</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-name"></a><h3>The <code class="literal">"g-name"</code> property</h3>
<pre class="programlisting">  "g-name"                   <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
<p>
The well-known or unique name that the proxy is for.
</p>
<p>Default value: NULL</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-name-owner"></a><h3>The <code class="literal">"g-name-owner"</code> property</h3>
<pre class="programlisting">  "g-name-owner"             <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read</pre>
<p>
The unique name that owns <a class="link" href="GDBusProxy.html#GDBusProxy--g-name" title='The "g-name" property'><span class="type">"g-name"</span></a> or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no-one
currently owns that name. You may connect to <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject-notify"><span class="type">"notify"</span></a> signal to
track changes to this property.
</p>
<p>Default value: NULL</p>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy--g-object-path"></a><h3>The <code class="literal">"g-object-path"</code> property</h3>
<pre class="programlisting">  "g-object-path"            <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
<p>
The object path the proxy is for.
</p>
<p>Default value: NULL</p>
<p class="since">Since 2.26</p>
</div>
</div>
<div class="refsect1">
<a name="GDBusProxy.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GDBusProxy-g-properties-changed"></a><h3>The <code class="literal">"g-properties-changed"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy,
                                                        <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>   *changed_properties,
                                                        <a href="./../gobject/gobject/gobject-Boxed-Types.html#GStrv"><span class="type">GStrv</span></a>       invalidated_properties,
                                                        <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)                   : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
Emitted when one or more D-Bus properties on <em class="parameter"><code>proxy</code></em> changes. The
local cache has already been updated when this signal fires. Note
that both <em class="parameter"><code>changed_properties</code></em> and <em class="parameter"><code>invalidated_properties</code></em> are
guaranteed to never be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> (either may be empty though).
</p>
<p>
If the proxy has the flag
<a class="link" href="GDBusProxy.html#G-DBUS-PROXY-FLAGS-GET-INVALIDATED-PROPERTIES:CAPS"><code class="literal">G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES</code></a> set, then
<em class="parameter"><code>invalidated_properties</code></em> will always be empty.
</p>
<p>
This signal corresponds to the
<code class="literal">PropertiesChanged</code> D-Bus signal on the
<code class="literal">org.freedesktop.DBus.Properties</code> interface.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>The <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> emitting the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>changed_properties</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> containing the properties that changed</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>invalidated_properties</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of properties that was invalidated</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
<hr>
<div class="refsect2">
<a name="GDBusProxy-g-signal"></a><h3>The <code class="literal">"g-signal"</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> *proxy,
                                                        <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>      *sender_name,
                                                        <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>      *signal_name,
                                                        <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>   *parameters,
                                                        <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)        : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
Emitted when a signal from the remote object and interface that <em class="parameter"><code>proxy</code></em> is for, has been received.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
<td>The <a class="link" href="GDBusProxy.html" title="GDBusProxy"><span class="type">GDBusProxy</span></a> emitting the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>sender_name</code></em> :</span></p></td>
<td>The sender of the signal or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the connection is not a bus connection. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>signal_name</code></em> :</span></p></td>
<td>The name of the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>parameters</code></em> :</span></p></td>
<td>A <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple with parameters for the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.26</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>